package com.tedu.review.day02;
/**
 * Java类---继承---方法：具备多态性
 * 实现父子类方法相互调用，注意：重写跟重载
 * 实现多态：向上造型  父类对象  引用=new  子类对象();【创建对象：常见】
 */
class A1{
    public void tell1(){
        System.out.println("你好，你好，你好你好你好！");
    }
    public void tell2(){
        System.out.println("我的头发，是真发");
    }
}
class B1 extends A1{
    public void tell2(){
        System.out.println("操!!!");
    }
    public void tell3(){
        System.out.println("我！发发发~~~");
    }
}
public class 多态造型问题 {
    public static void main(String[] args) {
        //继承---方法：方法互通 考虑：多态【造型上|下】
        // A1 a1=new B1();    抽象类和接口使用
       // B1 b1=new B1();
       // A1 a1=b1;
        //a1.tell1();
        //a1.tell2();  //向上造型：调用父类造型  没有方法实现互通
                  //如果有重写，子类覆盖父类的方法
                //向下造型：父类 引用=new 子类(); 向上造型一次

        A1 a1=new B1();//1.父类 引用=new 子类();向上造型一次
        B1 b1=(B1)a1;//2.子类 引用1=(子类对象)向上造型引用
        //实现：方法互通
        b1.tell1();//父类方法
        b1.tell2();//子类方法:重写
        b1.tell3();//子类方法
    }
}
